// *************************************
// CONSTRUCTEUR DE L'OBJET
// *************************************

// METHODES

objFenWait.prototype.nbre=0;

function objFenWait(libel, url, idCont, idExtReq){
    // PROPRIETES
    objFenWait.prototype.nbre=0;
    rialto.session.objects["fenWait"]=this;
    var oThis=this;
    this.titre=libel;
//    this.iFrame=iFrame;
    //taille disponible
    widthGlobal=document.body.clientWidth;
    heightGlobal=document.body.clientHeight;       
    var top=(heightGlobal/2)-60;
    var left=(widthGlobal/2)-100;

    //constitution de l'url de dmde d arret de la servlet ? partir de l url de la servlet SI L'URL EXISTE
    if (url){
        i = url.indexOf("?");  
        // test ci-dessous ? supp ult?rieurement
        if (idCont) {
            this.urlStopServ = (i==-1) ?  url : url.substr(0,i) ;
            this.urlStopServ  =   this.urlStopServ 
                                + '?METHOD=STOP'
                                + '&FENID='    + idCont  
                                + '&IDEXTREQ=' + idExtReq
        }
        else{
            this.urlStopServ  += '?METHOD=STOP';
        }    
    }

    //popup
    //SI ELLE EXISTE DEJA ON LA RECUPERE
    if (objFenWait.prototype.fen){        
        //on r?cupere au niveau du prototype les elements de l'objet        
        this.fen        =   objFenWait.prototype.fen;
        this.divLib     =   objFenWait.prototype.divLib;               
        this.text       =   objFenWait.prototype.text;
        this.suffFond   =   objFenWait.prototype.suffFond;
        this.fen.moveTo(top,left);
        this.fen.reafficheFen();
        this.BANN       =   objFenWait.prototype.BANN;
        this.BANN.oCiu  =   this;
        if (this.BANN.iframe) { // existe seult si usage precdt bton annule
            this.BANN.iframe.masque();  //sinon l iframe est visible si le bton a ?t? utilis? 
                                        // precedemment(ss doute a cause du load)
traceExec('this.BANN.iframe.frame.style.width = '+this.BANN.iframe.frame.style.width,1);
traceExec('this.BANN.iframe.frame.style.height = '+this.BANN.iframe.frame.style.height,1);
        }
    }
    //SINON ON LA CREE
    else{        
        this.fen = new rialto.widget.Dialog("fen",top,left,200,90,""," ","transparent");
//        this.fen = new rialto.widget.Dialog("fen",top,left,200,90,""," ","gris");
        this.divLib=document.createElement("DIV");    
        this.divLib.className="libelle1";
        this.divLib.style.position="absolute";
        this.divLib.style.top="5px";        
        this.divLib.style.left="25px";        
        this.divLib.style.width="100%";                
        this.text=document.createTextNode(libel);
        this.divLib.appendChild(this.text);
        this.fen.add(this.divLib);   
        //image
        this.img=document.createElement("IMG");        
        this.img.src=rialtoConfig.pathRialtoE + "images/sablier.gif";
        this.img.style.position="absolute";
        this.img.style.height='35px';
        this.img.style.width='27px';
        this.img.style.left='75px';
        this.img.style.top='22px';
        this.fen.add(this.img);

// pour tests:
//this.fen.chgtParent(window.objects[sourceReq]);

        
        //Bouton annuler
        var wBtn=50;
        var hBtn=60;    
        this.BANN = new rialto.widget.Button(hBtn,wBtn,"ANNULER");


        this.BANN.oCiu = this;
        this.BANN.requete = function () {
            //url = dmde de stop de la servlet
            var url = this.oCiu.urlStopServ;

            //si elle n'existe pas on la cree (ds le bton ou ds doct )
            if (!this.iframe){        
                this.iframe=new objFrame("ifr",0,0,0,0,hidden=true);          
//                this.iframe.create(this.getObjHtml()); //autre option possible
                this.iframe.create(window.document);
            }

            // envoi ordre Stop ? la servlet
                traceExec('objFenWait.requete iframe.load url= '+url,1);
            this.iframe.load(url);


        }

       this.BANN.onclick=function () {
            this.oCiu.stopEnCours = true;
                //traceExec('objFenWait.onclick ->requete',1);
            this.requete();  // envoi requete Stop ? la servlet
                //traceExec('objFenWait.onclick <-requete',1);

        }; 


        //this.BANN.fen = this.fen; semble inutile
        this.fen.add(this.BANN.getObjHtml());

        //on m?morise au niveau du prototype les elements de l'objet        
        objFenWait.prototype.fen=this.fen;
        objFenWait.prototype.suffFond=this.suffFond;
        objFenWait.prototype.divLib=this.divLib;
        objFenWait.prototype.text=this.text;
        objFenWait.prototype.BANN = this.BANN;
 
/* test autres options d implementation
method delete n est pas accept? par IE
methode post et get : 1 pb subsiste 1 window vide est syst?matiquement cr??
comme si l iframe de destination n etait pas trouv?
         this.BANN.onclick = function () {
            var frm    = document.createElement('FORM');
            frm.action = oThis.urlServActive;
//            frm.method = 'get';
//            frm.method = 'delete';
            frm.method = 'post';
            oThis.crateIframe();
            oThis.iframe.frame.name = 'fenWait';
            frm.target        = 'fenWait';
               var argt = document.createElement("INPUT");    
               argt.type = 'text';    
               argt.name = 'METHOD';
               argt.value = 'STOP';
               frm.appendChild(argt);    
            this.fen.add(frm);
            frm.submit();
           oThis.arrete();            
        }; 
fin option */

    }   
       
    //on modifie le texte
    this.patiente();
}

objFenWait.prototype.patiente=function(){
        //Cette fonction permet de faire d?filer des ......
        var str="";
        //a chaque passage on incremente
        objFenWait.prototype.nbre+=1;
        //si on est ? 5 on revient ? 1
        if(objFenWait.prototype.nbre>5){objFenWait.prototype.nbre=0;}        
        //on cree le nombre de . coorespondant
        for (i=0;i<objFenWait.prototype.nbre;i++){
            str+=".";
        }
        //on vire le texte
        this.divLib.removeChild(this.divLib.firstChild);
        //on recr?e le texte
        str=this.titre+" "+str;        
        this.text=document.createTextNode(str);
        this.divLib.appendChild(this.text);
        //on relance la fonction
        this.time=window.setTimeout("rialto.session.objects[\"fenWait\"].patiente()",500);
}

objFenWait.prototype.arrete=function(modeStop){
// 1 stop peut ?tre parti juste avant le retour de r?ponse
// il faut laisser la reponse du stop supprimer la fenetre popup
    if (this.stopEnCours && (!modeStop)) return;
    this.stopEnCours = false;
/*    if (this.BANN.iframe) { // existe seult si usage precdt bton annule
            this.BANN.iframe.masque();  //sinon l iframe est visible si le bton a ?t? utilis? 
                                        // precedemment(ss doute a cause du load)
traceExec('objFenWait.arrete iframe.masque()',1);
    }
*/    if (rialto.session.objects["fenWait"]){
        window.clearTimeout(rialto.session.objects["fenWait"].time);
        rialto.session.objects["fenWait"].fen.masqueFen();
        rialto.session.objects["fenWait"]=null;          // a revoir, suicide un peu os? non ?
    }
}